package tree;

/**
 * @author kaho
 * @since 2021/3/2
 */
public class _230_二叉搜索树中第K小的元素 {

    int result = 0;
    int num = 0;

    /**
     * 给定一个二叉搜索树的根节点 root ，和一个整数 k ，请你设计一个算法查找其中第 k 个最小元素（从 1 开始计数）。
     * @param root
     * @param k
     * @return
     */
    public int kthSmallest(TreeNode root, int k) {

        inorder(root, k);
        return result;
    }

    private void inorder(TreeNode root, int k) {
        if (root == null) {
            return;
        }
        inorder(root.left, k);
        num++;
        if (num ==k) {
            result = root.val;
        }
        inorder(root.right, k);
    }
}
